$(function () {

    layui.form.on('checkbox(controller-checkbox)', function (data) {
        var elem = data.elem;
        var checked = elem.checked;
        $(elem).closest('tr').find('input').each(function(i,input){
            if(!$(input).prop('disabled')){
                $(input).prop('checked', checked);
            }
        })
    });
    layui.form.on('checkbox(action-checkbox)', function (data) {
            initCheckedStatus();
    });
    function initCheckedStatus() {
        $('.auth-node-tr').each(function (i, elem) {
            var checkedCount = 0;
            var totalCount = 0;
            $(elem).find('[lay-filter="action-checkbox"]').each(function (j, checkbox) {
                totalCount++;
                if ($(checkbox).prop('checked')) {
                    checkedCount++;
                }
            });

            var checkedStatus;
            if (checkedCount === totalCount) {
                checkedStatus = 1;  // 全部选中
            } else if (checkedCount === 0) {
                checkedStatus = -1; // 全部未选中
            } else {
                checkedStatus = 0;  // 部分选中
            }
            if (checkedStatus === 0) {
                $(elem).find('[lay-filter="controller-checkbox"]').prop('checked', false);
                $(elem).find('[lay-filter="controller-checkbox"]').prop('indeterminate', true);
            } else if (checkedStatus > 0) {
                $(elem).find('[lay-filter="controller-checkbox"]').prop('checked', true);
                $(elem).find('[lay-filter="controller-checkbox"]').prop('indeterminate', false);
            } else {
                $(elem).find('[lay-filter="controller-checkbox"]').prop('checked', false);
                $(elem).find('[lay-filter="controller-checkbox"]').prop('indeterminate', false);
            }
            layui.form.render('checkbox');
        });
    }
    initCheckedStatus();

    ua.listen();
});